JS 判断字符串、数组、对象数组是否包含某个值以及字符串是否匹配某个模式 | 您所在的位置:网站首页 › 正则表达式 数组包含 › JS 判断字符串、数组、对象数组是否包含某个值以及字符串是否匹配某个模式 |
目录
一、字符串indexOf()方法includes()方法search()方法match() 方法
二、数组indexOf() 方法includes() 方法find() 方法findIndex() 方法some() 方法
三、对象数组find() 方法findIndex() 方法some() 方法
四、RegExp对象RegExp对象的声明test() 方法exec() 方法
一、字符串
indexOf()方法
可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回 -1。 var str = "123" console.log(str.indexOf("2") != -1); // true var str = 'Hello world!'; console.log( str.indexOf('e') ); // 存在字符串中,返回位置 1 console.log( str.indexOf('d') ); // 存在字符串中,返回位置 10 console.log( str.indexOf('x') ); // 不存在字符串中,返回 -1 includes()方法用于判断一个字符串是否包含另一个字符串,返回一个布尔值。如果包含则返回true,如果不包含则返回false。 var str="Hello world!"; if(str.includes("world")){ console.log("字符串中包含'world'"); } else{ console.log("字符串中不包含'world'"); } search()方法也用于检索字符串中是否包含指定的字符或者子串,如果包含则返回字符或者子串的位置,如果不包含则返回-1。与indexOf()方法不同的是,search()方法接受一个正则表达式作为参数。 var str = "123" console.log(str.search("2") != -1); // true match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。 var str="Hello world!"; if(str.match("world")){ console.log("字符串中包含'world'"); } else{ console.log("字符串中不包含‘world’"); } var str = "123" var reg = RegExp(/3/); if(str.match(reg)){ //包含; } 二、数组 indexOf() 方法1.如果你的代码需要兼容 ES5 或更早的版本,那么可以使用 indexOf() 方法来判断数组是否包含某个元素。它的语法如下:array.indexOf(searchElement[, fromIndex]);其中searchElement 表示要查找的元素,fromIndex 表示搜索的起始位置,默认值为 0。indexOf() 方法返回一个数字,表示数组中第一次出现指定元素的位置。如果数组中不包含该元素,则返回 -1。 const fruits = ['apple', 'banana', 'orange']; console.log(fruits.indexOf('apple') !== -1); // true console.log(fruits.indexOf('banana') !== -1); // true console.log(fruits.indexOf('pear') !== -1); // false var arr = ['cat', 'dog', 'bat']; console.log( arr.indexOf('cat') ) // 存在 返回位置 0 console.log( arr.indexOf('dog') ) // 存在 返回位置 1 console.log( arr.indexOf('tiger') ) // 不存在 返回 -1 includes() 方法在 ES6 中,为数组提供了一个 includes() 方法,用于判断数组是否包含某个元素。它的语法如下:array.includes(searchElement[, fromIndex])其中,searchElement 表示要查找的元素,fromIndex 表示搜索的起始位置,默认值为 0。includes() 方法返回一个布尔值,表示数组中是否包含指定的元素。 var arr = ['cat', 'dog', 'bat']; console.log( arr.includes('cat' ) ) // 存在 返回 true console.log( arr.includes('dog' ) ) // 存在 返回 true console.log( arr.includes('tiger') ) // 不存在 返回 false find() 方法 ES6 中还提供了一个 find() 方法,它可以用于获取数组中符合条件的第一个元素。如果数组中不存在符合条件的元素,则返回 undefined。我们可以利用这一点来判断数组是否包含某个元素。这里的 find() 方法使用了一个箭头函数,它接受一个参数 item,表示数组中的每一个元素。箭头函数的返回值为 item 是否等于要查找的元素,如果是则返回 true,否则返回 false。最终,find() 方法返回的是查找结果是否为 undefined,即是否存在符合条件的元素。使用 find() 方法判断数组是否包含某个元素的示例代码: const fruits = ['apple', 'banana', 'orange']; console.log(fruits.find(item => item === 'apple') !== undefined); // true console.log(fruits.find(item => item === 'banana') !== undefined); // true console.log(fruits.find(item => item === 'pear') !== undefined); // false findIndex() 方法返回符合传入测试(函数)条件的数组元素索引,否则返回 -1. var arr = ['cat', 'dog', 'bat']; console.log( arr.findIndex(v => v == 'cat' ) ) // 存在 返回 0 console.log( arr.findIndex(v => v == 'dog' ) ) // 存在 返回 1 console.log( arr.findIndex(v => v == 'tiger') ) // 不存在 返回 -1 some() 方法与 find() 方法类似,ES6 中还提供了一个 some() 方法,它可以用于判断数组中是否存在符合条件的元素。如果数组中存在符合条件的元素,则返回 true,否则返回 false。以下是使用 some() 方法判断数组是否包含某个元素的示例代码: const fruits = ['apple', 'banana', 'orange']; console.log(fruits.some(item => item === 'apple')); // true console.log(fruits.some(item => item === 'banana')); // true console.log(fruits.some(item => item === 'pear')); // false 三、对象数组 find() 方法 var arr = [{name:'cat'}, {name:'dog'}, {name:'bat'}]; console.log( arr.find(v => v.name == 'dog' ) ) // 存在 返回 {name: "dog"} console.log( arr.find(v => v.name == 'tiger') ) // 不存在 返回 undefined findIndex() 方法 var arr = [{name:'cat'}, {name:'dog'}, {name:'bat'}]; console.log( arr.findIndex(v => v.name == 'cat' ) ) // 存在 返回 0 console.log( arr.findIndex(v => v.name == 'dog' ) ) // 存在 返回 1 console.log( arr.findIndex(v => v.name == 'tiger') ) // 不存在 返回 -1 some() 方法 var arr = [{name:'cat'}, {name:'dog'}, {name:'bat'}]; console.log( arr.some(v => v.name == 'cat' ) ) // 存在 返回 true console.log( arr.some(v => v.name == 'dog' ) ) // 存在 返回 true console.log( arr.some(v => v.name == 'tiger') ) // 不存在 返回 false // 循环判断arr与arr2是否有相同元素,相同的添加isdelete:false字段,不同添加isdelete:true this.arr.map((item) => { let bool = this.arr2.findIndex((it) => { return item.name == it.name }) if (bool !== -1) { item.isdelete = false } else { item.isdelete = true } }) 四、RegExp对象 RegExp对象的声明语法:声明一个RegExp有两种方式: 1)使用对象创建:var re=new RegExp(pattern,modifiers); // var 变量名 = new RegExp(“正则表达式”,“匹配模式”); // 这个正则表达式可以来检查一个字符串中是否含有a var reg = new RegExp("ab", "i"); var str = "Abc"; var result = reg.test(str); console.log(result); //true2)使用字面量创建:var re =/pattern/modifiers; // var 变量名 = /正则表达式/匹配模式; // 这个正则表达式可以来检查一个字符串中是否含有a var reg = /a/i; var str = "Abc"; var result = reg.test(str); console.log(result); // true匹配模式: i:忽略大小写 g:全局匹配模式 ig:忽略大小写且全局匹配模式 m:执行多行匹配 注意:可以为一个正则表达式设置多个匹配模式,且顺序无所谓 test() 方法 test() 方法用于检测一个字符串是否匹配某个模式。如果字符串中有匹配的值返回 true ,否则返回 false。语法:RegExpObject.test(string) var str = "123" var reg = RegExp(/3/); console.log(reg.test(str) != -1); // true // 这个正则表达式可以来检查一个字符串中是否含有a var reg = /a|b|c/; var str = "Abc"; var result = reg.test(str); console.log(result); // 这个正则表达式可以来检查一个字符串中是否含有字母 var reg = /[A-z]/; var str = "Abc"; var result = reg.test(str); console.log(result); // Javascript 判断是移动端浏览器还是 PC 端浏览器: if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) { document.write("移动") } else { document.write("PC") } // 验证用户手机号提交是否符合要求 var phone =18367898765; var reg=/^[1][3,4,5,7,8][0-9]{9}$/; if(!(reg.test(phone))){ alert('请输入正确的手机号码!') }else{ alert('输入的手机号码正确!') } exec() 方法用于检索字符串中的正则表达式的匹配。返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。 var str = "123" var reg = RegExp(/3/); if(reg.exec(str)){ //包含; } var str=" world! Hello"; //查找"Hello" var patt=/Hello/g; var result=patt.exec(str); console.log("返回值: " + result); //Hello //查找 "RUNOOB" patt=/RUNOOB/g; result=patt.exec(str); console.log("返回值: " + result);//null |
CopyRight 2018-2019 实验室设备网 版权所有 |